<?php

/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
App::uses('Controller', 'Controller');

/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package       app.Controller
 * @property      AuthComponent $Auth
 * @property      CookieComponent $Cookie
 * @property      PaginatorComponent $Paginator
 * @property      SecurityComponent $Security
 * @property      SessionComponent $Session
 * @link http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
 */
class AppController extends Controller {

    /**
     * Components
     *
     * @var array
     */
    public $components = array(
        'Acl',
        'Auth' => array(
            'authorize' => array(
                'Actions' => array('actionPath' => 'controllers')
            )
        ),
        'Session',
        'Cookie',
        'Paginator',
        'Security'
    );
    /**
     * Helpers
     *
     * @var array
     */
    public $helpers = array(
        'Html',
        'Form',
        'Session',
        'Time',
        'Text',
        'News'
    );

    // 'TinyMCE.TinyMCE');
    public function beforeFilter() {
        parent::beforeFilter();

        $this->switchLayout();
        //Configure AuthComponent
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
        $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
        $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'delegate');
        
	$this->Auth->authenticate = array(
			'Form' => array(
				'fields' => array(
					'username' => 'username',
					'password' => 'password'),
				'userModel' => 'User', 
				'scope' => array(
					'User.active' => 1,
					'User.email_verified' => 1)));
    }

    public function setPageTitle($title) {
        $this->set('title_for_layout', $title);
    }

    private function switchLayout() {
        $groupId = $this->Auth->user('group_id');
        if (isset($this->request->params['prefix']) && isset($this->request->params['admin'])) {
            $this->layout = 'admin';
        } elseif ($groupId == 2) {
            $this->layout = 'client';
        } else {
            $this->layout = 'default';
        }
    }

}
